/* 
在 TypeScript 中，我们使用接口（Interfaces）来定义对象的类型
接口: 是对象的状态(属性)和行为(方法)的抽象(描述)
// 意思是接口内部不能写属性的值和方法的实现，只是声明一下
// 接口是用来限制对象数据，说白了接口是一个规范

接口类型的对象
    多了或者少了属性是不允许的
    可选属性: ?
    只读属性: readonly
*/
/* 
需求: 创建人的对象, 需要对人的属性进行一定的约束
  id是number类型, 必须有, 只读的
  name是string类型, 必须有
  age是number类型, 必须有
  sex是string类型, 可以没有
  eat方法必须有
*/

(function(){
  interface Iuser {
    readonly id:number,
    name:string,
    age:number,
    sex?:string,
    eat():void
    // eat:() => void
  }


  let user :Iuser = {
    id:1,
    name:'zhaoliying',
    age:35,
    sex:'famale',
    eat(){
      console.log('吃饭');
    },
    // haha:100
  }

})()












